#ifndef Algebra_Sparsity_h
#define Algebra_Sparsity_h

#include "AlgebraModule.h"

SG_NAMESPACE_OPEN
namespace Algebra
{
    /**
     * @brief Characterize the matrix pattern.
     *
     * As noted by PETSc, for problems of substantial size, preallocation of matrix memory is
     * crucial for attaining good performance.  Thus, a table-like stuff should be introduced
     * to store the connectivity between DoFs.
     *
     * @see https://petsc.org/release/manual/getting_started/
     *
     * By the way, a similar utility exists in MFEM, namely, mfem::Table, and MFEM says
     * Data type Table. Table stores the connectivity of elements of TYPE I to elements of TYPE II,
     * for example, it may be Element-To-Face connectivity table, etc.
     *
     * @author nene
     * @date ‌Januray‌, 2025.
     */
    class ALGEBRA_EXPORT Sparsity
    {
    public:
      Sparsity ();
      virtual ~Sparsity ();
    };
}

SG_NAMESPACE_CLOSE

#endif  // Algebra_Sparsity_h